package com.leyou.api;

import com.leyou.domain.db1entity.ConditionAndGoods;
import com.leyou.domain.db1entity.TableCell;
import com.leyou.domain.db3entity.LeyouCoupons;
import com.leyou.domain.db3entity.Prscard;
import com.leyou.domain.db3entity.Smssendcouponsinfo;
import com.leyou.domain.vo.CouponActivityInfoVO;
import com.leyou.domain.vo.ReceiveVO;

import java.util.List;

/**
 * @Author lixin
 * @Date 2018/11/01 16:59
 * @Version 1.0
 * @Description TODO
 **/
public interface ReceiveService {

    /**
     * @param phone
     * @return java.util.List<com.leyou.domain.db3entity.Prscard>
     * @author lixin
     * @date 13:21 2018/11/6 0006
     * @description 根据手机号查询当前会员信息
     **/
    List<Prscard> getPrscardByPhone(String phone);


    /**
     * @param activityKey
     * @return com.leyou.domain.vo.CouponActivityInfoVO
     * @author lixin
     * @date 13:18 2018/11/6 0006
     * @description 查询当前活动及活动下优惠券信息列表
     **/
    CouponActivityInfoVO getCouponActivityInfo(String activityKey);


    /**
     * @author lixin
     * @date 14:04 2018/11/6 0006
     * @param leyouCouponsList  优惠券列表
     * @return void
     * @description 向已存在的会员发券
     **/
    void putLeyouCoupons(List<LeyouCoupons> leyouCouponsList);



    /**
     * @author lixin
     * @date 16:42 2018/11/6 0006
     * @param smssendcouponsinfoList
     * @return void
     * @description 发券给非会员
     **/
    void putSmsSendCoupons(List<Smssendcouponsinfo> smssendcouponsinfoList);


    /**
     * @author lixin
     * @date 11:16 2018/11/7 0007
     * @param receiveVO
     * @return boolean
     * @description 生成领券记录并将相关券库存减1
     **/
    boolean putReceiveRecord(ReceiveVO receiveVO);


    /**
     * @author lixin
     * @date 11:01 2018/12/12 0012
     * @param conditionAndGoodsList
     * @return boolean
     * @description 批量校验SKU有效性
     **/
    boolean checkSkuList(List<ConditionAndGoods> conditionAndGoodsList);

}
